namespace Infra.NHibernateUnitOfWork
{
    using NHibernate;

    public interface IUnitOfWorkFactory
    {
        NHibernate.Cfg.Configuration Configuration { get; }
        ISessionFactory SessionFactory { get; }
        ISession CurrentSession { get; set; }

        IUnitOfWork Create(IConfigurationContext configurationContext);
        void DisposeUnitOfWork(UnitOfWorkImplementor adapter);
    }
}